package com.ljy.my_study.java.methodhandle;

import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;

public class TestMain {

    /**
     * MethodHandle是方法句柄，通过这个方法可以获取方法的指针。比反射的方式增加直接
     * @param args
     * @throws Throwable
     */
    public static void main(String[] args) throws Throwable {
        MethodHandleTest methodHandleTest=new MethodHandleTest();
        MethodType mt=MethodType.methodType(String.class,String.class);
        MethodHandle mh= MethodHandles.lookup().findVirtual(MethodHandleTest.class,"doSomething",mt).bindTo(methodHandleTest);
        System.out.println(mh.invoke("James"));
    }
}
